clear;
clc;

%% Preset Parameters
FileName    =   'Result_Baseline';
StdVec      =   [1 1 1 -1 -1 60 -10]'*0.01/4;
Param_Benchmark =   struct('KAPPA',0.00/4,'XI',1/82.5/4,'Pir_SS',0.02/4,...
                            'Flag_dE',0,'Flag_Price',0,...
                            'B_Total_SS',0.91,'b_lb',-0.29,...
                            'TrProb_H',0.96,'Prob_H',0.37,...
                            'TrProb_ext',0.92,'Prob_ext',0.33,...
                            'Fin_DomShare',0.79,'Fin_AdjCost',0.8,...
                            'Cons_FracH',0.60,...
                            'RHO_M_dom',0.68,'RHO_M_ext',0.81,'RHO_Y_H',0.50,'RHO_p_F',0.90,...
                            'Taylor_Pi',1.1,'Taylor_ir',0.87,...
                            'Cons_ElasTN',6.19,'Cons_ElasHF',6.19);

SOLUTION        =   Solver_Main(Setup_PP(Param_Benchmark),StdVec);
SOLUTION.IRF    =   TempFun_AugIRF(SOLUTION.PP,SOLUTION.SS,SOLUTION.MODEL,SOLUTION.EquJac,SOLUTION.IRF);
%% Generate Different Results
SubElast_TN_Low =   1;
SubElast_HF_Low =   3;

% TN
TempParam       =   Param_Benchmark;
TempParam.Cons_ElasTN   = SubElast_TN_Low;

[IRF_TN,SOLUTION_TN] ...
                =   TempFun_NewIRF(Setup_PP(TempParam),SOLUTION.SS,SOLUTION.MODEL,SOLUTION.EquJac,StdVec);

% HF
TempParam       =   Param_Benchmark;
TempParam.Cons_ElasHF   = SubElast_HF_Low;

[IRF_HF,SOLUTION_HF] ...
                =   TempFun_NewIRF(Setup_PP(TempParam),SOLUTION.SS,SOLUTION.MODEL,SOLUTION.EquJac,StdVec);

% TN and HF
TempParam       =   Param_Benchmark;
TempParam.Cons_ElasTN   = SubElast_TN_Low;% Param_Benchmark.Cons_ElasTN/2;
TempParam.Cons_ElasHF   = SubElast_HF_Low;

[IRF_TN_HF,SOLUTION_TN_HF] ...
                =   TempFun_NewIRF(Setup_PP(TempParam),SOLUTION.SS,SOLUTION.MODEL,SOLUTION.EquJac,StdVec);

% Even lower TN as requested by JPE-Macro Referee
TempParam       =   Param_Benchmark;
TempParam.Cons_ElasTN   = 1.50;

[IRF_TN_Low,SOLUTION_TN_Low] ...
                =   TempFun_NewIRF(Setup_PP(TempParam),SOLUTION.SS,SOLUTION.MODEL,SOLUTION.EquJac,StdVec);


save('Results_HighVsLowSubElas.mat','SOLUTION','SOLUTION_TN','SOLUTION_HF','SOLUTION_TN_HF', 'SOLUTION_TN_Low', '-v7.3');
